import { Module } from '@nestjs/common';
import { UploadService } from './upload.service';
import { UploadController } from './upload.controller';
import { MulterModule } from '@nestjs/platform-express';
import { diskStorage } from 'multer';
import { extname, join } from 'path';

// 上传文件需要安装 multer包和 @types/multer包
@Module({
  // 导入MulterModule上传文件模块，这时该模块拥有上传文件的类
  imports: [
    // 上传注册配置
    MulterModule.register({
      // 存储配置： 存储器
      storage: diskStorage({
        // 存储位置 join：拼接，__dirname: 当前所在目录的绝对路径，../：当前地址返回一层的images
        destination: join(__dirname, '../images'),
        // 配置文件名
        filename: (req, file, callback) => {
          // 时间戳 + extname截取文件名的后缀
          const fileName = `${new Date().getTime() + extname(file.originalname)}`;
          // 返回文件名
          return callback(null, fileName);
        },
      }),
    }),
  ],
  controllers: [UploadController],
  providers: [UploadService],
})
export class UploadModule {}
